ISA

C H A P T E R   9

ISA

This chapter presents the requirements and recommendations for ISA under the Microsoft Windows family of operating systems.

Overview for ISA

This section summarizes the basic requirements for a PC system that includes Industry Standard Architecture (ISA). In PC 97, ISA must be implemented with full support for Plug and Play ISA boot devices. For any ISA device that cannot meet the resource requirements specified for its device class, the device and driver must implement IRQ sharing, as described later in this chapter.

In addition to expansion cards designed to use ISA, the following are also ISA devices:

Any such devices located at I/O addresses under 100h can use fixed resources and are exempt from Plug and Play requirements for unique IDs, flexible resource configuration, and dynamic disable capabilities.

The following ISA devices have additional requirements defined in this guide:

System Requirements for ISA

This section summarizes the basic design requirements for ISA. All ISA cards that receive a "Designed for Microsoft Windows" logo must meet the requirements defined in this section in addition to meeting the general expansion card requirements as defined in the "Basic PC 97" chapter in Part 2 of this guide.

1. ISA support in PC system

Optional

System designers are encouraged to consider designing PC systems that do not include the ISA bus or that do not allow for end-user insertion of ISA devices, and hardware vendors are encouraged to plan for complete migration away from ISA.

The requirements listed in this chapter apply only if the manufacturer chooses to include ISA support in a system.

2. System supports Plug and Play ISA specification and Plug and Play BIOS

Required

If ISA support is included in a PC 97 system, the manufacturer must implement the standards described in the following Plug and Play specifications:

A Plug and Play - compliant system can identify the Plug and Play ISA cards and the resources they use, then program these resources so they do not conflict. The conflict-resolution scheme used on Plug and Play ISA cards essentially puts all cards "to sleep," then reads the card identification, the information about what the card can do, and the resources it requires. This information can include what resources are programmable and the ranges they can be programmed. With this information, the system can configure the card in a way that prevents conflicts with other cards in the ISA bus.

For this procedure to work, the system must completely implement the related requirements defined in the Plug and Play ISA specification and the Plug and Play BIOS specifications.

Note Standard system devices are excluded from this requirement. The system can reserve static resources for devices such as interrupt controllers 1 and 2, timer (8254-2), keyboard controller (8042), real-time clock, DMA page registers, DMA controllers 1 and 2, and math coprocessor (if present). For an x86-based system, these fixed resources are located at I/O addresses under 100h and can also include an NMI mask.

3. BIOS configures ISA cards on non - Plug and Play operating systems

Required

The system BIOS must properly configure all Plug and Play ISA cards in the PC system if a non - Plug and Play operating system is loaded.

To identify whether a Plug and Play operating system is present, the BIOS first evaluates the master boot record to find the partition from which to boot and then determines whether that partition is a Windows 95 partition. The Windows 95 signature in the partition boot sector is the string "MSWIN4.0" located at offset 03h in the partition boot record.

Plug and Play for ISA Devices

This section summarizes the Plug and Play requirements for ISA cards. For more complete details, see the Plug and Play ISA specification and also Hardware Design Guide for Microsoft Windows 95 (Microsoft Press, 1994). This section includes additional requirements for ISA cards to ensure that such cards will perform correctly under Windows 95, including requirements for design implementations that appear only as recommendations in the ISA specification.

4. ISA device complies with Plug and Play ISA standards

Required

Any card or bus that implements Plug and Play ISA must fully implement the standards defined in the Plug and Play ISA Specification v. 1.0a. This specification also defines the requirements for a unique ID for each ISA device, which is used to identify the device for Plug and Play configuration.

5. Option ROMs used only on cards with boot devices

Required

This requirement applies only for x86-based systems. Option ROMs must be used only on cards that contain boot devices.

Cards with option ROMs must not hook the primary boot interrupts (Int 9h, Int 10h, Int 13h, Int 18h, and Int 19h) until the system calls the boot connection vector in the selected option ROM expansion header.

On cards with option ROMs, the default configuration must be able to be disabled after the card has been isolated.

6. Implement full 16-bit I/O address decode logic

Required

This can be a simple circuit limiting I/O addresses to the 0h to 3FFh range, or can be flexible enough to use the upper address regions. For more information, see the "Basic PC 97" chapter in Part 2 of this guide.

7. ISA device and driver support IRQ sharing if resource requirements cannot be met

Required

This is a requirement only if the device cannot meet the PC 97 resource requirements (as defined for the particular device class in the related chapter in Part 4 of this guide). This requirement for sharing IRQs applies for devices of the same class, not across device classes.

To share IRQs, the following requirements must be met:

8. Unimplemented registers return a deterministic value when read

Required

Any unimplemented registers in the range 00h through 2Fh must return a deterministic value when they are read. Unimplemented configuration registers must return the "disabled" or "unused" value (not necessarily 0) when they are read.

9. Correct IDs for each ISA card

Required

In the Plug and Play ISA specification, it is required that a Plug and Play card have both an industry-unique Vendor ID (acquired by sending e-mail to pnpid@microsoft.com) and a company-unique Product Identifier (assigned by the manufacturer). The specification requires that this product identifier be unique among all Plug and Play ISA cards manufactured by that company. This means each product (for example, fax card, display adapter, sound adapter, and so on) and every model (for example, 14.4 fax, 28.8 fax, and so on) from the same manufacturer must have different product identifiers.

This is a PC 97 requirement, because it allows the operating system to isolate and identify these different cards. The user must never have a Plug and Play card that cannot be identified because it cannot be distinguished from other models of cards from the same manufacturer. The use of a unique Product ID does not solve the problems that occur when a user installs two of the same cards in a PC system.

In these cases, the user might install a Plug and Play card but will get no indication that it was installed and the card will not work. For this purpose, the Plug and Play ISA specification defines a unique serial number field that can be added to the Vendor and Product IDs to make the card completely unique. A board-unique number in the serial number field is required for ISA devices included on a PC 97 system.

10. ISA system board devices report through BIOS or use unique Serial ID

Required

A peripheral ISA device implemented on the system board can use a fixed Serial IDs (which is not unique) if the device is reported through the BIOS.

If the system board device participates in the Plug and Play ISA isolation scheme (rather than being reported through the BIOS), then it must meet the same requirement for a unique Serial ID as required for an add-on card.

Notice that it is possible that an add-on card containing an ISA chip might be added to a PC system that contains the same chip on the system board. In such a case, the add-on device will be found only if it has a different Serial ID.

11. IDs using PNP suffix allowed only in Compatible Device ID field

Required

Device IDs that use the three-character PNP suffix are allowed only in the Compatible Device ID field and cannot be used as Device IDs or Logical Device Ids (except, of course, for the device to which the PNP-based ID was originally assigned).

Resource data describes what resources must be available for each logical device on the card (for example, number of available IRQ numbers, address ranges of memory, and so on). Resource data can be stored in the same nonvolatile storage device (such as a serial ROM) that contains the serial identifier. The resource data in the nonvolatile storage device must be sequentially loaded into the resource data register (04h).

The contents of the nonvolatile storage device must be programmed with the information the system needs to interpret which resources the card requires. The structure of the data contained in the storage device is variable, depending on what resources are needed.

The resource data for a Plug and Play ISA card can be read while the card is in the Config state. This card can enter the Config state either after it has been isolated during the isolation sequence, or whenever it receives a Wake[CSN] software command in which the CSN matches the CSN assigned to the card. Only one card at a time can be in the Config state.

12. Correct support for boot devices

Required

Plug and Play ISA expansion cards that contain boot devices require some special considerations to properly boot the system. For PC 97, the system must implement support for Plug and Play ISA boot devices and option ROMs as described in the Plug and Play BIOS Specification v. 1.0a.

The types of devices required for the boot process include the primary input device (usually a keyboard), the primary output device (usually a display adapter and a monitor), and any IPL devices.

Any Plug and Play ISA expansion card that provides a boot function must be active when the system powers up. This gives non-Plug and Play systems the means for using Plug and Play ISA devices during a "legacy" boot process. In this case, a nonPlug and Play system BIOS will not perform the isolation sequence but will instead perform a ROM scan to detect the presence of a boot device. After the ROM scan detects the presence of an option ROM on the boot device, the system ROM will jump to the option ROM to initialize the device. The Plug and Play option ROM on the card will detect that the system BIOS is not Plug and Play compatible and will respond accordingly. Although an initial set of static resources must be provided during this "legacy" boot, the Plug and Play ISA card must be capable of changing these resources using the standard Plug and Play ISA isolation and configuration process.

As required in the Plug and Play ISA specification, resource usage of a card is always reflected in the card's configuration registers. This information allows Windows 95 to easily determine the default settings of a Plug and Play boot device. The default settings can then be overridden by the operating system with full cooperation of the device driver.

Power Management for ISA

There are no power management requirements for ISA.

References for ISA

This section lists some of the publications, services, and tools available to help build hardware that works with Windows operating systems.

Plug and Play ISA Specification v. 1.0a
Plug and Play BIOS Specification v. 1.0a
Clarifications to Plug and Play BIOS Specification v. 1.0a

http://www.microsoft.com/hwdev/pnpspecs.htm

Clarifications and white papers on bus issues

http://www.microsoft.com/hwdev/busbios/

Checklist for ISA

System Requirements for ISA
1. ISA support in PC system
Optional
2. System supports Plug and Play ISA specification and Plug and Play BIOS
Required
3. BIOS configures ISA cards on non - Plug and Play operating systems
Required

Plug and Play for ISA Devices
4. ISA device complies with Plug and Play ISA standards
Required
5. Option ROMs used only on cards with boot devices
Required
6. Implement full 16-bit I/O address decode logic
Required
7. ISA device and driver support IRQ sharing if resource requirements cannot be met
Required
8. Unimplemented registers return a deterministic value when read
Required
9. Correct IDs for each ISA card
Required
10. ISA system board devices report through BIOS or use unique Serial ID
Required
11. IDs using PNP suffix allowed only in Compatible Device ID field
Required
12. Correct support for boot devices
Required